package com.jege.jpa.many2many.convert;


import com.jege.jpa.many2many.enums.OpenState;

import javax.persistence.AttributeConverter;
import javax.persistence.Converter;

/**
 * string转换成enum
 * Created by ange on 2017/2/2.
 */
@Converter
public class EnumConverter implements AttributeConverter<OpenState, String> {


    /**
     * Converts the value stored in the entity attribute into the
     * data representation to be stored in the database.
     *
     * @param attribute the entity attribute value to be converted
     * @return the converted data to be stored in the database column
     */
    @Override
    public String convertToDatabaseColumn(OpenState attribute) {
        return attribute.getValue();
    }

    /**
     * Converts the data stored in the database column into the
     * value to be stored in the entity attribute.
     * Note that it is the responsibility of the converter writer to
     * specify the correct dbData type for the corresponding column
     * for use by the JDBC driver: i.e., persistence providers are
     * not expected to do such type conversion.
     *
     * @param dbData the data from the database column to be converted
     * @return the converted value to be stored in the entity attribute
     */
    @Override
    public OpenState convertToEntityAttribute(String dbData) {
        return OpenState.getEnum(dbData);
    }
}
